etc. …..
#Install packages
install.packages("haven")
trying URL 'https://cran.rstudio.com/bin/macosx/big-sur-arm64/contrib/4.3/haven_2.5.3.tgz'
Content type 'application/x-gzip' length 1132879 bytes (1.1 MB)
==================================================
downloaded 1.1 MB
The downloaded binary packages are in
/var/folders/8t/cf05ypcs56z1d0qh3cl43l880000gn/T//RtmpgK7aj1/downloaded_packages
#Load packages
library(data.table)
library(tidyr)
library(haven)
#Add data WV6
WV6_data <- load("/Users/laurabazzigher/Documents/GitHub/risk_wvs/data/dataset/WV6_dataset_wave_5_6/WV6_Data_R_v20201117.rdata")
WV6_data <- WV6_Data_R_v20201117
print(WV6_data)
#Name the variables
data6 = WV6_Data_R_v20201117[, c("V1", "V2", "V10", "V23", "V70", "V71","V72","V73", "V74B", "V75", "V76", "V77", "V78", "V79", "V147", "V149","V198", "V199", "V201", "V208","V209", "V210", "V240", "V242", "V248", "V229", "V57", "V58")]
names(data6) = c("v1_wave", "v2_country", "v10_happyness", "v23_satisfaction", "v70_creativity", "v71_money", "v72_security", "v73_goodtime", "v74b_help", "v75_success", "v76_risk", "v77_proper", "v78_environment", "v79_tradition", "v147_religion", "v149_hell", "v198_gov_benefits", "v199_fare_public_transportation", "v201_cheating_taxes", "v208_beating_wife", "v209_beating_children", "v210_violence", "v240_sex", "v242_age", "v248_education", "v229_employed", "v57_married", "v58_children")
#Exlusion of participants which no info about sex, age, education,
employment status, marital status, or number of children
data6 = subset(data6, v76_risk > 0 & v240_sex > 0 & v242_age >0 & v248_education > 0 & v229_employed > 0 & v57_married > 0 & v58_children >= 0)
#New column for variable “creativity”
# Erstellen einer neuen Zeile für die Variable
data6$creativity <- NA
# Zuordnen der Werte
data6$creativity[data6$v70_creativity == 1] <- "Very much like me"
data6$creativity[data6$v70_creativity == 2] <- "Like me"
data6$creativity[data6$v70_creativity == 3] <- "Somewhat like me"
data6$creativity[data6$v70_creativity == 4] <- "A little like me"
data6$creativity[data6$v70_creativity == 5] <- "Not like me"
data6$creativity[data6$v70_creativity == 6] <- "Not at all like me"
#New column for variable “security”
data6$creativity <- NA
data6$security[data6$v72_security == 1] <- "Very much like me"
data6$security[data6$v72_security == 2] <- "Like me"
data6$security[data6$v72_security == 3] <- "Somewhat like me"
data6$security[data6$v72_security == 4] <- "A little like me"
data6$security[data6$v72_security == 5] <- "Not like me"
data6$security[data6$v72_security == 6] <- "Not at all like me"
#New column for variable “goodtime”
data6$goodtime <- NA
data6$goodtime[data6$v73_goodtime == 1] <- "Very much like me"
data6$goodtime[data6$v73_goodtime == 2] <- "Like me"
data6$goodtime[data6$v73_goodtime == 3] <- "Somewhat like me"
data6$goodtime[data6$v73_goodtime == 4] <- "A little like me"
data6$goodtime[data6$v73_goodtime == 5] <- "Not like me"
data6$goodtime[data6$v73_goodtime == 6] <- "Not at all like me"
#New column for variable “money”
data6$money <- NA
data6$money[data6$v70_creativity == 1] <- "Very much like me"
data6$money[data6$v70_creativity == 2] <- "Like me"
data6$money[data6$v70_creativity == 3] <- "Somewhat like me"
data6$money[data6$v70_creativity == 4] <- "A little like me"
data6$money[data6$v70_creativity == 5] <- "Not like me"
data6$money[data6$v70_creativity == 6] <- "Not at all like me"
#New column for variable “help”
data6$help <- NA
data6$help[data6$v74b_help == 1] <- "Very much like me"
data6$help[data6$v74b_help == 2] <- "Like me"
data6$help[data6$v74b_help == 3] <- "Somewhat like me"
data6$help[data6$v74b_help == 4] <- "A little like me"
data6$help[data6$v74b_help == 5] <- "Not like me"
data6$help[data6$v74b_help == 6] <- "Not at all like me"
#New column for variable “success”
data6$success <- NA
data6$success[data6$v75_success == 1] <- "Very much like me"
data6$success[data6$v75_success == 2] <- "Like me"
data6$success[data6$v75_success == 3] <- "Somewhat like me"
data6$success[data6$v75_success == 4] <- "A little like me"
data6$success[data6$v75_success == 5] <- "Not like me"
data6$success[data6$v75_success == 6] <- "Not at all like me"
#New column for variable “risk”
data6$risk <- NA
# Zuordnen der Werte
data6$risk[data6$v76_risk == 1] <- "Very much like me"
data6$risk[data6$v76_risk == 2] <- "Like me"
data6$risk[data6$v76_risk == 3] <- "Somewhat like me"
data6$risk[data6$v76_risk == 4] <- "A little like me"
data6$risk[data6$v76_risk == 5] <- "Not like me"
data6$risk[data6$v76_risk == 6] <- "Not at all like me"
#New column for variable “proper”
data6$proper <- NA
data6$proper[data6$v77_proper == 1] <- "Very much like me"
data6$proper[data6$v77_proper == 2] <- "Like me"
data6$proper[data6$v77_proper == 3] <- "Somewhat like me"
data6$proper[data6$v77_proper == 4] <- "A little like me"
data6$proper[data6$v77_proper == 5] <- "Not like me"
data6$proper[data6$v77_proper == 6] <- "Not at all like me"
#New column for variable “environment”
data6$environment <- NA
data6$environment[data6$v78_environment == 1] <- "Very much like me"
data6$environment[data6$v78_environment == 2] <- "Like me"
data6$environment[data6$v78_environment == 3] <- "Somewhat like me"
data6$environment[data6$v78_environment == 4] <- "A little like me"
data6$environment[data6$v78_environment == 5] <- "Not like me"
data6$environment[data6$v78_environment == 6] <- "Not at all like me"
#New column for variable “tradition”
data6$tradition <- NA
data6$tradition[data6$v79_tradition == 1] <- "Very much like me"
data6$tradition[data6$v79_tradition == 2] <- "Like me"
data6$tradition[data6$v79_tradition == 3] <- "Somewhat like me"
data6$tradition[data6$v79_tradition == 4] <- "A little like me"
data6$tradition[data6$v79_tradition == 5] <- "Not like me"
data6$tradition[data6$v79_tradition == 6] <- "Not at all like me"
#New column for variable “satisfaction”
data6$satisfaction <- NA
data6$satisfaction[data6$v57_married == 1] <- "Very happy"
data6$satisfaction[data6$v10_happyness == 2] <- "Rather happy"
data6$satisfaction[data6$v10_happyness == 3] <- "Not very happy"
data6$satisfaction[data6$v10_happyness == 4] <- "Not at all happy"
#New column for variable “marrital status”
# Erstellen einer neuen Zeile für die Variable "verheiratet"
data6$marital_status <- NA
# Zuordnen der Werte
data6$marital_status[data6$v57_married == 1] <- "Married"
data6$marital_status[data6$v57_married == 2] <- "Living together as married"
data6$marital_status[data6$v57_married == 3] <- "Divorced"
data6$marital_status[data6$v57_married == 4] <- "Separated"
data6$marital_status[data6$v57_married == 5] <- "Widowed"
data6$marital_status[data6$v57_married == 6] <- "Single"
#New column for variable “religion”
# Erstellen einer neuen Zeile für die Variable
data6$religion <- NA
# Zuordnen der Werte
data6$religion[data6$v147_religion == 1] <- "A religious person"
data6$religion[data6$v147_religion == 2] <- "Not a religious person"
data6$religion[data6$v147_religion == 3] <- "An atheist"
#Categorical age variable (for example, to plot response frequencies
by category)
data6$agecat <- NA # Create an empty column 'agecat'
data6$agecat[data6$v242_age < 20] = "15-19"
data6$agecat[data6$v242_age >= 20 & data6$v242_age < 30] = "20-29"
data6$agecat[data6$v242_age >= 30 & data6$v242_age < 40] = "30-39"
data6$agecat[data6$v242_age >= 40 & data6$v242_age < 50] = "40-49"
data6$agecat[data6$v242_age >= 50 & data6$v242_age < 60] = "50-59"
data6$agecat[data6$v242_age >= 60 & data6$v242_age < 70] = "60-69"
data6$agecat[data6$v242_age >= 70 & data6$v242_age < 80] = "70-79"
data6$agecat[data6$v242_age >= 80] = "80+"
#New column for variable “sex”
# Erstellen einer neuen Zeile für die Variable
data6$sex <- NA
# Zuordnen der Werte
data6$sex[data6$v240_sex == 1] <- "male"
data6$sex[data6$v240_sex == 2] <- "female"
#Number of countries
length(unique(data6$v2_country))
#Number of participants
nrow(data6)
#Range of age
range(data6$v242_age)
#Table about gender
table(data6$sex)
Overview of religion vs. Risk
cross_table <- table(data6$religion, data6$risk)
print(cross_table)
A little like me Like me Not at all like me Not like me Somewhat like me
A religious person 8338 8617 8905 12174 10144
An atheist 718 612 507 1031 689
Not a religious person 3790 2887 2851 4944 3678
Very much like me
A religious person 6643
An atheist 335
Not a religious person 1804
#compare the groups religion and risk ### Because of the different
sample sizes to compare the groups, the data is normalised and changed
into % to compare the groups.
# Summe of participants in each group
sum_religious <- sum(c(8338, 718, 3790))
sum_atheist <- sum(c(8617, 612, 2887))
sum_not_religious <- sum(c(8905, 507, 2851))
# normalising data
normalized_data <- data.frame(
Religion = c("A religious person", "An atheist", "Not a religious person"),
`A little like me` = c(8338/sum_religious, 718/sum_atheist, 3790/sum_not_religious),
`Like me` = c(8617/sum_religious, 612/sum_atheist, 2887/sum_not_religious),
`Not at all like me` = c(8905/sum_religious, 507/sum_atheist, 2851/sum_not_religious),
`Not like me` = c(12174/sum_religious, 1031/sum_atheist, 4944/sum_not_religious),
`Somewhat like me` = c(10144/sum_religious, 689/sum_atheist, 3678/sum_not_religious),
`Very much like me` = c(6643/sum_religious, 335/sum_atheist, 1804/sum_not_religious)
)
# Convert data to long format
normalized_data_long <- tidyr::gather(normalized_data, key = "Risk", value = "Percentage", -Religion)
# Create a bar chart
ggplot(normalized_data_long, aes(x = Religion, y = Percentage, fill = Risk)) +
geom_bar(stat = "identity", position = "dodge") +
labs(title = "Normalized Risk Distribution by Religion",
x = "Religion",
y = "Percentage")

LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKIyMjIyBUbyBEbzogCiMgMS4gTG9hZCAKIyAyLiBLZXkgdmFyaWFibGVzCiMgMy4gZGVzY3JpcHRpdmVzIC0tPiBob3cgbWFueSBjb3VudHJpZXMsIHBhcnRpY2lwYW50cyAKIyA0LiBIb3cgdG8gdmlzdWFsaXplPyBkbyB3ZSB3YW50IHRvIGRvIHRoZSB2aXN1YWxpemF0aW9uPyBQZXIgQ291bnRyeSBvciBhbGwgdG9nZXRoZXIgLy8gY291bG9ycz8gZXRjLiAKIyA1LiBXaGF0IGRvIHdlIHdhbnQgdG8gcHJlc2VudD8gCi0gUHJlc2VudGF0aW9uIDE5LjEyLjIwMjMgCi0gZmluYWxpc2UgcHJlc2VudGF0aW9uIDA1LjEyLjIwMjMgd2l0aCBydWkKLSBTZW5kIHByZXNlbnRhdGlvbiAyNy4xMS4yMDIzIAotIFByZXNlbnRhdGlvbiBjb250ZW50IAogIC0gd2h5IHdlIGRvIHRoaXMgCiAgLSByZXNlYXJjaCBnYXAgCiAgLSBtZXRob2QgCiAgLSByZXN1bHRzCiAgLSBjaGFsbGVuZ2VzIAogIC0gY29uY2x1c2lvbiAKICAtLS0+IERvIHRoZSBQcmVzZW50YXRpb24gb24gR29vZ2xlU2xpZGVzIAotIGNhbmNlbCAxMi4xMi4yMDIzIHVuZCAxOS4xMi4yMDIzIAoKIyBldGMuIC4uLi4uIAoKI0luc3RhbGwgcGFja2FnZXMgCmBgYHtyfQppbnN0YWxsLnBhY2thZ2VzKCJoYXZlbiIpCmBgYAoKI0xvYWQgcGFja2FnZXMgCmBgYHtyfQpsaWJyYXJ5KGRhdGEudGFibGUpCmxpYnJhcnkodGlkeXIpCmxpYnJhcnkoaGF2ZW4pCmxpYnJhcnkoZ2dwbG90MikKYGBgCgoKI0FkZCBkYXRhIFdWNgpgYGB7cn0KV1Y2X2RhdGEgPC0gbG9hZCgiL1VzZXJzL2xhdXJhYmF6emlnaGVyL0RvY3VtZW50cy9HaXRIdWIvcmlza193dnMvZGF0YS9kYXRhc2V0L1dWNl9kYXRhc2V0X3dhdmVfNV82L1dWNl9EYXRhX1JfdjIwMjAxMTE3LnJkYXRhIikgCldWNl9kYXRhIDwtIFdWNl9EYXRhX1JfdjIwMjAxMTE3IApwcmludChXVjZfZGF0YSkKYGBgCiNOYW1lIHRoZSB2YXJpYWJsZXMgCmBgYHtyfQpkYXRhNiA9IFdWNl9EYXRhX1JfdjIwMjAxMTE3WywgYygiVjEiLCAiVjIiLCAiVjEwIiwgIlYyMyIsICJWNzAiLCAiVjcxIiwiVjcyIiwiVjczIiwgIlY3NEIiLCAiVjc1IiwgIlY3NiIsICJWNzciLCAiVjc4IiwgICJWNzkiLCAiVjE0NyIsICJWMTQ5IiwiVjE5OCIsICJWMTk5IiwgIlYyMDEiLCAiVjIwOCIsIlYyMDkiLCAiVjIxMCIsICJWMjQwIiwgIlYyNDIiLCAiVjI0OCIsICJWMjI5IiwgIlY1NyIsICJWNTgiKV0KCm5hbWVzKGRhdGE2KSA9IGMoInYxX3dhdmUiLCAidjJfY291bnRyeSIsICJ2MTBfaGFwcHluZXNzIiwgInYyM19zYXRpc2ZhY3Rpb24iLCAidjcwX2NyZWF0aXZpdHkiLCAidjcxX21vbmV5IiwgInY3Ml9zZWN1cml0eSIsICJ2NzNfZ29vZHRpbWUiLCAidjc0Yl9oZWxwIiwgInY3NV9zdWNjZXNzIiwgInY3Nl9yaXNrIiwgInY3N19wcm9wZXIiLCAidjc4X2Vudmlyb25tZW50IiwgInY3OV90cmFkaXRpb24iLCAidjE0N19yZWxpZ2lvbiIsICJ2MTQ5X2hlbGwiLCAidjE5OF9nb3ZfYmVuZWZpdHMiLCAidjE5OV9mYXJlX3B1YmxpY190cmFuc3BvcnRhdGlvbiIsICJ2MjAxX2NoZWF0aW5nX3RheGVzIiwgInYyMDhfYmVhdGluZ193aWZlIiwgInYyMDlfYmVhdGluZ19jaGlsZHJlbiIsICJ2MjEwX3Zpb2xlbmNlIiwgInYyNDBfc2V4IiwgInYyNDJfYWdlIiwgInYyNDhfZWR1Y2F0aW9uIiwgInYyMjlfZW1wbG95ZWQiLCAidjU3X21hcnJpZWQiLCAidjU4X2NoaWxkcmVuIikKYGBgCgoKI0V4bHVzaW9uIG9mIHBhcnRpY2lwYW50cyB3aGljaCBubyBpbmZvIGFib3V0IHNleCwgYWdlLCBlZHVjYXRpb24sIGVtcGxveW1lbnQgc3RhdHVzLCBtYXJpdGFsIHN0YXR1cywgb3IgbnVtYmVyIG9mIGNoaWxkcmVuCmBgYHtyfQpkYXRhNiA9IHN1YnNldChkYXRhNiwgdjc2X3Jpc2sgPiAwICYgdjI0MF9zZXggPiAwICYgdjI0Ml9hZ2UgPjAgJiB2MjQ4X2VkdWNhdGlvbiA+IDAgJiB2MjI5X2VtcGxveWVkID4gMCAmIHY1N19tYXJyaWVkID4gMCAmIHY1OF9jaGlsZHJlbiA+PSAwKQpgYGAKCgojTmV3IGNvbHVtbiBmb3IgdmFyaWFibGUgImNyZWF0aXZpdHkiCmBgYHtyfQojIEVyc3RlbGxlbiBlaW5lciBuZXVlbiBaZWlsZSBmw7xyIGRpZSBWYXJpYWJsZSAKZGF0YTYkY3JlYXRpdml0eSA8LSBOQQoKIyBadW9yZG5lbiBkZXIgV2VydGUKZGF0YTYkY3JlYXRpdml0eVtkYXRhNiR2NzBfY3JlYXRpdml0eSA9PSAxXSA8LSAiVmVyeSBtdWNoIGxpa2UgbWUiCmRhdGE2JGNyZWF0aXZpdHlbZGF0YTYkdjcwX2NyZWF0aXZpdHkgPT0gMl0gPC0gIkxpa2UgbWUiCmRhdGE2JGNyZWF0aXZpdHlbZGF0YTYkdjcwX2NyZWF0aXZpdHkgPT0gM10gPC0gIlNvbWV3aGF0IGxpa2UgbWUiCmRhdGE2JGNyZWF0aXZpdHlbZGF0YTYkdjcwX2NyZWF0aXZpdHkgPT0gNF0gPC0gIkEgbGl0dGxlIGxpa2UgbWUiCmRhdGE2JGNyZWF0aXZpdHlbZGF0YTYkdjcwX2NyZWF0aXZpdHkgPT0gNV0gPC0gIk5vdCBsaWtlIG1lIgpkYXRhNiRjcmVhdGl2aXR5W2RhdGE2JHY3MF9jcmVhdGl2aXR5ID09IDZdIDwtICJOb3QgYXQgYWxsIGxpa2UgbWUiCmBgYAoKI05ldyBjb2x1bW4gZm9yIHZhcmlhYmxlICJzZWN1cml0eSIKYGBge3J9CmRhdGE2JGNyZWF0aXZpdHkgPC0gTkEKCmRhdGE2JHNlY3VyaXR5W2RhdGE2JHY3Ml9zZWN1cml0eSA9PSAxXSA8LSAiVmVyeSBtdWNoIGxpa2UgbWUiCmRhdGE2JHNlY3VyaXR5W2RhdGE2JHY3Ml9zZWN1cml0eSA9PSAyXSA8LSAiTGlrZSBtZSIKZGF0YTYkc2VjdXJpdHlbZGF0YTYkdjcyX3NlY3VyaXR5ID09IDNdIDwtICJTb21ld2hhdCBsaWtlIG1lIgpkYXRhNiRzZWN1cml0eVtkYXRhNiR2NzJfc2VjdXJpdHkgPT0gNF0gPC0gIkEgbGl0dGxlIGxpa2UgbWUiCmRhdGE2JHNlY3VyaXR5W2RhdGE2JHY3Ml9zZWN1cml0eSA9PSA1XSA8LSAiTm90IGxpa2UgbWUiCmRhdGE2JHNlY3VyaXR5W2RhdGE2JHY3Ml9zZWN1cml0eSA9PSA2XSA8LSAiTm90IGF0IGFsbCBsaWtlIG1lIgpgYGAKCiNOZXcgY29sdW1uIGZvciB2YXJpYWJsZSAiZ29vZHRpbWUiCmBgYHtyfQpkYXRhNiRnb29kdGltZSA8LSBOQQoKZGF0YTYkZ29vZHRpbWVbZGF0YTYkdjczX2dvb2R0aW1lID09IDFdIDwtICJWZXJ5IG11Y2ggbGlrZSBtZSIKZGF0YTYkZ29vZHRpbWVbZGF0YTYkdjczX2dvb2R0aW1lID09IDJdIDwtICJMaWtlIG1lIgpkYXRhNiRnb29kdGltZVtkYXRhNiR2NzNfZ29vZHRpbWUgPT0gM10gPC0gIlNvbWV3aGF0IGxpa2UgbWUiCmRhdGE2JGdvb2R0aW1lW2RhdGE2JHY3M19nb29kdGltZSA9PSA0XSA8LSAiQSBsaXR0bGUgbGlrZSBtZSIKZGF0YTYkZ29vZHRpbWVbZGF0YTYkdjczX2dvb2R0aW1lID09IDVdIDwtICJOb3QgbGlrZSBtZSIKZGF0YTYkZ29vZHRpbWVbZGF0YTYkdjczX2dvb2R0aW1lID09IDZdIDwtICJOb3QgYXQgYWxsIGxpa2UgbWUiCmBgYAoKI05ldyBjb2x1bW4gZm9yIHZhcmlhYmxlICJtb25leSIKYGBge3J9CmRhdGE2JG1vbmV5IDwtIE5BCgpkYXRhNiRtb25leVtkYXRhNiR2NzBfY3JlYXRpdml0eSA9PSAxXSA8LSAiVmVyeSBtdWNoIGxpa2UgbWUiCmRhdGE2JG1vbmV5W2RhdGE2JHY3MF9jcmVhdGl2aXR5ID09IDJdIDwtICJMaWtlIG1lIgpkYXRhNiRtb25leVtkYXRhNiR2NzBfY3JlYXRpdml0eSA9PSAzXSA8LSAiU29tZXdoYXQgbGlrZSBtZSIKZGF0YTYkbW9uZXlbZGF0YTYkdjcwX2NyZWF0aXZpdHkgPT0gNF0gPC0gIkEgbGl0dGxlIGxpa2UgbWUiCmRhdGE2JG1vbmV5W2RhdGE2JHY3MF9jcmVhdGl2aXR5ID09IDVdIDwtICJOb3QgbGlrZSBtZSIKZGF0YTYkbW9uZXlbZGF0YTYkdjcwX2NyZWF0aXZpdHkgPT0gNl0gPC0gIk5vdCBhdCBhbGwgbGlrZSBtZSIKYGBgCgojTmV3IGNvbHVtbiBmb3IgdmFyaWFibGUgImhlbHAiCmBgYHtyfQpkYXRhNiRoZWxwIDwtIE5BCgpkYXRhNiRoZWxwW2RhdGE2JHY3NGJfaGVscCA9PSAxXSA8LSAiVmVyeSBtdWNoIGxpa2UgbWUiCmRhdGE2JGhlbHBbZGF0YTYkdjc0Yl9oZWxwID09IDJdIDwtICJMaWtlIG1lIgpkYXRhNiRoZWxwW2RhdGE2JHY3NGJfaGVscCA9PSAzXSA8LSAiU29tZXdoYXQgbGlrZSBtZSIKZGF0YTYkaGVscFtkYXRhNiR2NzRiX2hlbHAgPT0gNF0gPC0gIkEgbGl0dGxlIGxpa2UgbWUiCmRhdGE2JGhlbHBbZGF0YTYkdjc0Yl9oZWxwID09IDVdIDwtICJOb3QgbGlrZSBtZSIKZGF0YTYkaGVscFtkYXRhNiR2NzRiX2hlbHAgPT0gNl0gPC0gIk5vdCBhdCBhbGwgbGlrZSBtZSIKYGBgCgojTmV3IGNvbHVtbiBmb3IgdmFyaWFibGUgInN1Y2Nlc3MiCmBgYHtyfQpkYXRhNiRzdWNjZXNzIDwtIE5BCgpkYXRhNiRzdWNjZXNzW2RhdGE2JHY3NV9zdWNjZXNzID09IDFdIDwtICJWZXJ5IG11Y2ggbGlrZSBtZSIKZGF0YTYkc3VjY2Vzc1tkYXRhNiR2NzVfc3VjY2VzcyA9PSAyXSA8LSAiTGlrZSBtZSIKZGF0YTYkc3VjY2Vzc1tkYXRhNiR2NzVfc3VjY2VzcyA9PSAzXSA8LSAiU29tZXdoYXQgbGlrZSBtZSIKZGF0YTYkc3VjY2Vzc1tkYXRhNiR2NzVfc3VjY2VzcyA9PSA0XSA8LSAiQSBsaXR0bGUgbGlrZSBtZSIKZGF0YTYkc3VjY2Vzc1tkYXRhNiR2NzVfc3VjY2VzcyA9PSA1XSA8LSAiTm90IGxpa2UgbWUiCmRhdGE2JHN1Y2Nlc3NbZGF0YTYkdjc1X3N1Y2Nlc3MgPT0gNl0gPC0gIk5vdCBhdCBhbGwgbGlrZSBtZSIKYGBgCgoKI05ldyBjb2x1bW4gZm9yIHZhcmlhYmxlICJyaXNrIgpgYGB7cn0KZGF0YTYkcmlzayA8LSBOQQoKZGF0YTYkcmlza1tkYXRhNiR2NzZfcmlzayA9PSAxXSA8LSAiVmVyeSBtdWNoIGxpa2UgbWUiCmRhdGE2JHJpc2tbZGF0YTYkdjc2X3Jpc2sgPT0gMl0gPC0gIkxpa2UgbWUiCmRhdGE2JHJpc2tbZGF0YTYkdjc2X3Jpc2sgPT0gM10gPC0gIlNvbWV3aGF0IGxpa2UgbWUiCmRhdGE2JHJpc2tbZGF0YTYkdjc2X3Jpc2sgPT0gNF0gPC0gIkEgbGl0dGxlIGxpa2UgbWUiCmRhdGE2JHJpc2tbZGF0YTYkdjc2X3Jpc2sgPT0gNV0gPC0gIk5vdCBsaWtlIG1lIgpkYXRhNiRyaXNrW2RhdGE2JHY3Nl9yaXNrID09IDZdIDwtICJOb3QgYXQgYWxsIGxpa2UgbWUiCmBgYAoKI05ldyBjb2x1bW4gZm9yIHZhcmlhYmxlICJwcm9wZXIiCmBgYHtyfQpkYXRhNiRwcm9wZXIgPC0gTkEKCmRhdGE2JHByb3BlcltkYXRhNiR2NzdfcHJvcGVyID09IDFdIDwtICJWZXJ5IG11Y2ggbGlrZSBtZSIKZGF0YTYkcHJvcGVyW2RhdGE2JHY3N19wcm9wZXIgPT0gMl0gPC0gIkxpa2UgbWUiCmRhdGE2JHByb3BlcltkYXRhNiR2NzdfcHJvcGVyID09IDNdIDwtICJTb21ld2hhdCBsaWtlIG1lIgpkYXRhNiRwcm9wZXJbZGF0YTYkdjc3X3Byb3BlciA9PSA0XSA8LSAiQSBsaXR0bGUgbGlrZSBtZSIKZGF0YTYkcHJvcGVyW2RhdGE2JHY3N19wcm9wZXIgPT0gNV0gPC0gIk5vdCBsaWtlIG1lIgpkYXRhNiRwcm9wZXJbZGF0YTYkdjc3X3Byb3BlciA9PSA2XSA8LSAiTm90IGF0IGFsbCBsaWtlIG1lIgpgYGAKCiNOZXcgY29sdW1uIGZvciB2YXJpYWJsZSAiZW52aXJvbm1lbnQiCmBgYHtyfQpkYXRhNiRlbnZpcm9ubWVudCA8LSBOQQoKZGF0YTYkZW52aXJvbm1lbnRbZGF0YTYkdjc4X2Vudmlyb25tZW50ID09IDFdIDwtICJWZXJ5IG11Y2ggbGlrZSBtZSIKZGF0YTYkZW52aXJvbm1lbnRbZGF0YTYkdjc4X2Vudmlyb25tZW50ID09IDJdIDwtICJMaWtlIG1lIgpkYXRhNiRlbnZpcm9ubWVudFtkYXRhNiR2NzhfZW52aXJvbm1lbnQgPT0gM10gPC0gIlNvbWV3aGF0IGxpa2UgbWUiCmRhdGE2JGVudmlyb25tZW50W2RhdGE2JHY3OF9lbnZpcm9ubWVudCA9PSA0XSA8LSAiQSBsaXR0bGUgbGlrZSBtZSIKZGF0YTYkZW52aXJvbm1lbnRbZGF0YTYkdjc4X2Vudmlyb25tZW50ID09IDVdIDwtICJOb3QgbGlrZSBtZSIKZGF0YTYkZW52aXJvbm1lbnRbZGF0YTYkdjc4X2Vudmlyb25tZW50ID09IDZdIDwtICJOb3QgYXQgYWxsIGxpa2UgbWUiCmBgYAoKCiNOZXcgY29sdW1uIGZvciB2YXJpYWJsZSAidHJhZGl0aW9uIgpgYGB7cn0KZGF0YTYkdHJhZGl0aW9uIDwtIE5BCgpkYXRhNiR0cmFkaXRpb25bZGF0YTYkdjc5X3RyYWRpdGlvbiA9PSAxXSA8LSAiVmVyeSBtdWNoIGxpa2UgbWUiCmRhdGE2JHRyYWRpdGlvbltkYXRhNiR2NzlfdHJhZGl0aW9uID09IDJdIDwtICJMaWtlIG1lIgpkYXRhNiR0cmFkaXRpb25bZGF0YTYkdjc5X3RyYWRpdGlvbiA9PSAzXSA8LSAiU29tZXdoYXQgbGlrZSBtZSIKZGF0YTYkdHJhZGl0aW9uW2RhdGE2JHY3OV90cmFkaXRpb24gPT0gNF0gPC0gIkEgbGl0dGxlIGxpa2UgbWUiCmRhdGE2JHRyYWRpdGlvbltkYXRhNiR2NzlfdHJhZGl0aW9uID09IDVdIDwtICJOb3QgbGlrZSBtZSIKZGF0YTYkdHJhZGl0aW9uW2RhdGE2JHY3OV90cmFkaXRpb24gPT0gNl0gPC0gIk5vdCBhdCBhbGwgbGlrZSBtZSIKYGBgCgojTmV3IGNvbHVtbiBmb3IgdmFyaWFibGUgInNhdGlzZmFjdGlvbiIKYGBge3J9CmRhdGE2JHNhdGlzZmFjdGlvbiA8LSBOQQoKZGF0YTYkc2F0aXNmYWN0aW9uW2RhdGE2JHY1N19tYXJyaWVkID09IDFdIDwtICJWZXJ5IGhhcHB5IgpkYXRhNiRzYXRpc2ZhY3Rpb25bZGF0YTYkdjEwX2hhcHB5bmVzcyA9PSAyXSA8LSAiUmF0aGVyIGhhcHB5IgpkYXRhNiRzYXRpc2ZhY3Rpb25bZGF0YTYkdjEwX2hhcHB5bmVzcyA9PSAzXSA8LSAiTm90IHZlcnkgaGFwcHkiCmRhdGE2JHNhdGlzZmFjdGlvbltkYXRhNiR2MTBfaGFwcHluZXNzID09IDRdIDwtICJOb3QgYXQgYWxsIGhhcHB5IgpgYGAKCiNOZXcgY29sdW1uIGZvciB2YXJpYWJsZSAibWFycml0YWwgc3RhdHVzIgoKYGBge3J9CmRhdGE2JG1hcml0YWxfc3RhdHVzIDwtIE5BCgpkYXRhNiRtYXJpdGFsX3N0YXR1c1tkYXRhNiR2NTdfbWFycmllZCA9PSAxXSA8LSAiTWFycmllZCIKZGF0YTYkbWFyaXRhbF9zdGF0dXNbZGF0YTYkdjU3X21hcnJpZWQgPT0gMl0gPC0gIkxpdmluZyB0b2dldGhlciBhcyBtYXJyaWVkIgpkYXRhNiRtYXJpdGFsX3N0YXR1c1tkYXRhNiR2NTdfbWFycmllZCA9PSAzXSA8LSAiRGl2b3JjZWQiCmRhdGE2JG1hcml0YWxfc3RhdHVzW2RhdGE2JHY1N19tYXJyaWVkID09IDRdIDwtICJTZXBhcmF0ZWQiCmRhdGE2JG1hcml0YWxfc3RhdHVzW2RhdGE2JHY1N19tYXJyaWVkID09IDVdIDwtICJXaWRvd2VkIgpkYXRhNiRtYXJpdGFsX3N0YXR1c1tkYXRhNiR2NTdfbWFycmllZCA9PSA2XSA8LSAiU2luZ2xlIgpgYGAKCiNOZXcgY29sdW1uIGZvciB2YXJpYWJsZSAicmVsaWdpb24iCmBgYHtyfQpkYXRhNiRyZWxpZ2lvbiA8LSBOQQoKZGF0YTYkcmVsaWdpb25bZGF0YTYkdjE0N19yZWxpZ2lvbiA9PSAxXSA8LSAiQSByZWxpZ2lvdXMgcGVyc29uIgpkYXRhNiRyZWxpZ2lvbltkYXRhNiR2MTQ3X3JlbGlnaW9uID09IDJdIDwtICJOb3QgYSByZWxpZ2lvdXMgcGVyc29uIgpkYXRhNiRyZWxpZ2lvbltkYXRhNiR2MTQ3X3JlbGlnaW9uID09IDNdIDwtICJBbiBhdGhlaXN0IgpgYGAKCgojQ2F0ZWdvcmljYWwgYWdlIHZhcmlhYmxlIChmb3IgZXhhbXBsZSwgdG8gcGxvdCByZXNwb25zZSBmcmVxdWVuY2llcyBieSBjYXRlZ29yeSkKYGBge3J9CmRhdGE2JGFnZWNhdCA8LSBOQSAgIyBDcmVhdGUgYW4gZW1wdHkgY29sdW1uICdhZ2VjYXQnCgpkYXRhNiRhZ2VjYXRbZGF0YTYkdjI0Ml9hZ2UgPCAyMF0gPSAiMTUtMTkiCmRhdGE2JGFnZWNhdFtkYXRhNiR2MjQyX2FnZSA+PSAyMCAmIGRhdGE2JHYyNDJfYWdlIDwgMzBdID0gIjIwLTI5IgpkYXRhNiRhZ2VjYXRbZGF0YTYkdjI0Ml9hZ2UgPj0gMzAgJiBkYXRhNiR2MjQyX2FnZSA8IDQwXSA9ICIzMC0zOSIKZGF0YTYkYWdlY2F0W2RhdGE2JHYyNDJfYWdlID49IDQwICYgZGF0YTYkdjI0Ml9hZ2UgPCA1MF0gPSAiNDAtNDkiCmRhdGE2JGFnZWNhdFtkYXRhNiR2MjQyX2FnZSA+PSA1MCAmIGRhdGE2JHYyNDJfYWdlIDwgNjBdID0gIjUwLTU5IgpkYXRhNiRhZ2VjYXRbZGF0YTYkdjI0Ml9hZ2UgPj0gNjAgJiBkYXRhNiR2MjQyX2FnZSA8IDcwXSA9ICI2MC02OSIKZGF0YTYkYWdlY2F0W2RhdGE2JHYyNDJfYWdlID49IDcwICYgZGF0YTYkdjI0Ml9hZ2UgPCA4MF0gPSAiNzAtNzkiCmRhdGE2JGFnZWNhdFtkYXRhNiR2MjQyX2FnZSA+PSA4MF0gPSAiODArIgpgYGAKCiNOZXcgY29sdW1uIGZvciB2YXJpYWJsZSAic2V4IgpgYGB7cn0KZGF0YTYkc2V4IDwtIE5BIAoKZGF0YTYkc2V4W2RhdGE2JHYyNDBfc2V4ID09IDFdIDwtICJtYWxlIgpkYXRhNiRzZXhbZGF0YTYkdjI0MF9zZXggPT0gMl0gPC0gImZlbWFsZSIKYGBgCgojTnVtYmVyIG9mIGNvdW50cmllcwpgYGB7cn0KbGVuZ3RoKHVuaXF1ZShkYXRhNiR2Ml9jb3VudHJ5KSkgCmBgYAoKI051bWJlciBvZiBwYXJ0aWNpcGFudHMKYGBge3J9Cm5yb3coZGF0YTYpIApgYGAKCiNSYW5nZSBvZiBhZ2UKYGBge3J9CnJhbmdlKGRhdGE2JHYyNDJfYWdlKSAKYGBgCgojVGFibGUgYWJvdXQgZ2VuZGVyCmBgYHtyfQp0YWJsZShkYXRhNiRzZXgpCmBgYAoKIyBTY2F0dGVycGxvdCBvZiBBZ2UgdnMuIFJpc2sgd2l0aCBnZ3Bsb3QKYGBge3J9CmRhdGFfZGYgPC0gZGF0YS5mcmFtZShBZ2UgPSBkYXRhNiR2MjQyX2FnZSwgUmlzayA9IGRhdGE2JHY3Nl9yaXNrKSAjIENvbnZlcnQgZGF0YSBpbnRvIGEgZGF0YSBmcmFtZS4KCmdncGxvdChkYXRhX2RmLCBhZXMoeCA9IEFnZSwgeSA9IFJpc2spKSArCiAgZ2VvbV9wb2ludChjb2xvciA9ICJibHVlIiwgc2l6ZSA9IDEpICsKICBsYWJzKHRpdGxlID0gIlNjYXR0ZXJwbG90IG9mIEFnZSB2cy4gUmlzayIsCiAgICAgICB4ID0gIkFnZSIsCiAgICAgICB5ID0gIlJpc2siKQpgYGAKCiMgSGlzdG9ncmFtbSBmb3IgQWdlCmBgYHtyfQpoaXN0KGRhdGE2JHYyNDJfYWdlLCAKICAgICBtYWluPSJIw6R1Zmlna2VpdHN2ZXJ0ZWlsdW5nIGRlcyBBbHRlcnMiLAogICAgIHhsYWI9IkFsdGVyIiwKICAgICB5bGFiPSJIw6R1Zmlna2VpdCIsCiAgICAgY29sPSJibHVlIikKYGBgCgoKIyBPdmVydmlldyBvZiByZWxpZ2lvbiB2cy4gUmlzawpgYGB7cn0KY3Jvc3NfdGFibGUgPC0gdGFibGUoZGF0YTYkcmVsaWdpb24sIGRhdGE2JHJpc2spCnByaW50KGNyb3NzX3RhYmxlKQpgYGAKCiNjb21wYXJlIHRoZSBncm91cHMgcmVsaWdpb24gYW5kIHJpc2sgCiMjIyBCZWNhdXNlIG9mIHRoZSBkaWZmZXJlbnQgc2FtcGxlIHNpemVzIHRvIGNvbXBhcmUgdGhlIGdyb3VwcywgdGhlIGRhdGEgaXMgbm9ybWFsaXNlZCBhbmQgY2hhbmdlZCBpbnRvICUgdG8gY29tcGFyZSB0aGUgZ3JvdXBzLiAKYGBge3J9CiMgU3VtbWUgb2YgcGFydGljaXBhbnRzIGluIGVhY2ggZ3JvdXAKc3VtX3JlbGlnaW91cyA8LSBzdW0oYyg4MzM4LCA3MTgsIDM3OTApKQpzdW1fYXRoZWlzdCA8LSBzdW0oYyg4NjE3LCA2MTIsIDI4ODcpKQpzdW1fbm90X3JlbGlnaW91cyA8LSBzdW0oYyg4OTA1LCA1MDcsIDI4NTEpKQoKIyBub3JtYWxpc2luZyBkYXRhCm5vcm1hbGl6ZWRfZGF0YSA8LSBkYXRhLmZyYW1lKAogIFJlbGlnaW9uID0gYygiQSByZWxpZ2lvdXMgcGVyc29uIiwgIkFuIGF0aGVpc3QiLCAiTm90IGEgcmVsaWdpb3VzIHBlcnNvbiIpLAogIGBBIGxpdHRsZSBsaWtlIG1lYCA9IGMoODMzOC9zdW1fcmVsaWdpb3VzLCA3MTgvc3VtX2F0aGVpc3QsIDM3OTAvc3VtX25vdF9yZWxpZ2lvdXMpLAogIGBMaWtlIG1lYCA9IGMoODYxNy9zdW1fcmVsaWdpb3VzLCA2MTIvc3VtX2F0aGVpc3QsIDI4ODcvc3VtX25vdF9yZWxpZ2lvdXMpLAogIGBOb3QgYXQgYWxsIGxpa2UgbWVgID0gYyg4OTA1L3N1bV9yZWxpZ2lvdXMsIDUwNy9zdW1fYXRoZWlzdCwgMjg1MS9zdW1fbm90X3JlbGlnaW91cyksCiAgYE5vdCBsaWtlIG1lYCA9IGMoMTIxNzQvc3VtX3JlbGlnaW91cywgMTAzMS9zdW1fYXRoZWlzdCwgNDk0NC9zdW1fbm90X3JlbGlnaW91cyksCiAgYFNvbWV3aGF0IGxpa2UgbWVgID0gYygxMDE0NC9zdW1fcmVsaWdpb3VzLCA2ODkvc3VtX2F0aGVpc3QsIDM2Nzgvc3VtX25vdF9yZWxpZ2lvdXMpLAogIGBWZXJ5IG11Y2ggbGlrZSBtZWAgPSBjKDY2NDMvc3VtX3JlbGlnaW91cywgMzM1L3N1bV9hdGhlaXN0LCAxODA0L3N1bV9ub3RfcmVsaWdpb3VzKQopCgojIENvbnZlcnQgZGF0YSB0byBsb25nIGZvcm1hdApub3JtYWxpemVkX2RhdGFfbG9uZyA8LSB0aWR5cjo6Z2F0aGVyKG5vcm1hbGl6ZWRfZGF0YSwga2V5ID0gIlJpc2siLCB2YWx1ZSA9ICJQZXJjZW50YWdlIiwgLVJlbGlnaW9uKQoKIyBDcmVhdGUgYSBiYXIgY2hhcnQKZ2dwbG90KG5vcm1hbGl6ZWRfZGF0YV9sb25nLCBhZXMoeCA9IFJlbGlnaW9uLCB5ID0gUGVyY2VudGFnZSwgZmlsbCA9IFJpc2spKSArCiAgZ2VvbV9iYXIoc3RhdCA9ICJpZGVudGl0eSIsIHBvc2l0aW9uID0gImRvZGdlIikgKwogIGxhYnModGl0bGUgPSAiTm9ybWFsaXplZCBSaXNrIERpc3RyaWJ1dGlvbiBieSBSZWxpZ2lvbiIsCiAgICAgICB4ID0gIlJlbGlnaW9uIiwKICAgICAgIHkgPSAiUGVyY2VudGFnZSIpCgpgYGAKCgoKCgoKCgoK